#ifndef SRGP_SPH_H
#define SRGP_SPH_H

#include <Windows.h>


#define DEFAULT_MAX_PATTERN_INDEX 150
#define DEFAULT_MAX_CURSOR_INDEX 25
#define DEFAULT_MAX_FONT_INDEX 50
#define DEFAULT_MAX_CANVAS_INDEX 50
#define DEFAULT_MAX_STRING_SIZE 80
#define DEFAULT_MAX_POINTLIST_SIZE 500

#define NUMBER_OF_LINE_STYLES 4

#define NUMBER_OF_MARKER_STYLES 3

#define LEFT_BUTTON 0
#define MIDDLE_BUTTON 1
#define RIGHT_BUTTON 2
#define LEFT_BUTTON_MASK 1
#define MIDDLE_BUTTON_MASK 2
#define RIGHT_BUTTON_MASK 4
#define SHIFT 0
#define CONTROL 1
#define META 2
#define INDEFINITE -1

#define ExplodeRect(R) R.bottom_left.x,R.bottom_left.y,R.top_right.x,R.top_right.y

#define ExplodePt(P) P.x,P.y

typedef enum inputDevice_tag{NO_DEVICE=0, KEYBOARD, LOCATOR} inputDevice;

typedef enum inputMode_tag{INACTIVE=0, SAMPLE, EVENT} inputMode;

typedef enum keyboardMode_tag{EDIT=0, RAW} keyboardMode;

typedef enum echoType_tag{NO_ECHO=0, CURSOR, RUBBER_LINE, RUBBER_RECT} echoType;

typedef enum buttonStatus_tag{UP=0, DOWN} buttonStatus;

typedef enum lineStype_tag{CONTINUOUS=0, DASHED, DOTTED, DOT_DASHED} lineStyle;

typedef enum markerStyle_tag{MARKER_CIRCLE=0, MARKER_SQUARE, MARKER_X} markerStyle;

#endif